package com.mapper;

import com.pojo.Product;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数据访问接口
 */
public interface ProductMapper {

    /**
     * 查询全部商品
     * @return  全部商品的集合
     */
    List<Product> getAllProduct();

    /**
     * 根据id修改商品描述
     * @param pdesc  商品描述
     * @param pid 商品id
     */
    void updateProductById(@Param("pdesc")String pdesc, @Param("pid")String pid);

    /**
     * 根据商品的id删除商品
     * 这里因为我product表中的pid是orderIter表中的外键约束，所以要删除product表中的记录，要先删除orderItem表中的记录
     * 报错：Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`login_register`.`orderitem`, CONSTRAINT `fk_0001` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`))
     * 修改：数据库中删除外键约束、先删除外键表中记录，再删除主键表记录
     * @param pid   商品编号id
     */
    void deleteProductById(String pid);

    /**
     * 添加商品
     * @param product 商品实体
     */
    void insertProduct(Product product);
}
